package com.ruoyi.system.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 进度模板DTO
 */
@Data
@ApiModel("进度模板DTO")
public class ProgressTemplateDTO {

    @ApiModelProperty("主键ID")
    private Long id;

    @ApiModelProperty(value = "模板名称", required = true)
    @NotBlank(message = "模板名称不能为空")
    @Size(max = 30, message = "模板名称长度不能超过30个字符")
    private String templateName;

    @ApiModelProperty("模板描述")
    @Size(max = 200, message = "模板描述长度不能超过200个字符")
    private String templateDesc;

    @ApiModelProperty("是否默认模板")
    private Boolean isDefault;

    @ApiModelProperty("状态(0-禁用,1-启用)")
    private Integer status;

    @ApiModelProperty(value = "关联项目类型列表", required = true)
    @NotNull(message = "关联项目类型不能为空")
    private List<String> associatedProjectList;

    @ApiModelProperty("创建者")
    private String createBy;

    @ApiModelProperty("创建时间")
    private LocalDateTime createTime;

    @ApiModelProperty("更新者")
    private String updateBy;

    @ApiModelProperty("更新时间")
    private LocalDateTime updateTime;

    @ApiModelProperty("包含阶段数量")
    private Integer stageCount;

    @ApiModelProperty("关联项目数")
    private Integer relatedProjectCount;

    @ApiModelProperty("阶段列表")
    private List<ProgressStageDTO> stageList;
}
